package com.itheima.mapper;

import com.itheima.entity.Dept;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface DeptMapper {
    //方法一：使用@Results注解
//    @Results({
//            @Result(column = "create_time", property = "createTime"),
//            @Result(column = "update_time", property = "updateTime")
//    })
    //方法二：别名
//    @Select("select id, name, create_time createTime, update_time updateTime from dept")
    //方法三:全局配置
    //使用@Select注解，指定查询语句，查询dept表中的所有数据
    @Select("select * from dept")
    //定义一个list方法，返回一个List<Dept>类型的数据
    public List<Dept> list ();
    //删除部门
    @Delete("delete from dept where id = #{id}")//#符号是为了预编译运行具有高效率和安全的特性，替换成$可能发生SQL注入
    void delete(Integer id);
    //新增部门
    @Insert("insert into dept(name,create_time,update_time) values(#{name}, #{createTime},#{updateTime})")
    void insert(Dept dept);

    @Select("select * from dept where id = #{id}")
    Dept getById(Integer id);

    @Update("update dept set name=#{name},update_time=#{updateTime} where id=#{id}")
    void update(Dept dept);
}
